package com.tuozixuan.factory.simple;

/**
 * 简单工厂模式-静态工厂模式<br/>
 * 简单工厂模式：增加一个新类（工厂类）来负责实例化对象<br/>
 * 工厂模式用于实现逻辑的封装，并通过公共的借口提供对象的实例化服务，在添加新的类时只需要做少量的修改<br/>
 * <hr/>
 * 此种静态工厂模式的优缺点<br/>
 * 优点：符合单一职责原则和依赖倒置原则。缺点：不符合开闭原则<br/>
 * 
 * @author tuozixuan
 *
 */
public class VehicleFactory {

	public enum VehicleType {
		Bike, Car, Truck;
	}

	public static Vehicle create(VehicleType type) {
		if (VehicleType.Bike.equals(type)) {
			return new Bike();
		} else if (VehicleType.Car.equals(type)) {
			return new Car();
		} else if (VehicleType.Truck.equals(type)) {
			return new Truck();
		} else {
			return null;
		}

	}
}
